let api = [];
const apiDocListSize = 5
api.push({
    name: 'default',
    order: '1',
    list: []
})
api[0].list.push({
    alias: 'CaptchaController',
    order: '1',
    link: '',
    desc: '',
    list: []
})
api[0].list[0].list.push({
    order: '1',
    deprecated: 'false',
    url: '/captcha/get',
    methodId: 'd7d1b60658588003a1414bc1a4d60d08',
    desc: '',
});
api[0].list[0].list.push({
    order: '2',
    deprecated: 'false',
    url: '/captcha/check',
    methodId: 'fba9c7294e4bad76de46173e39272f1c',
    desc: '',
});
api.push({
    name: '授权模块',
    order: '2',
    list: []
})
api[1].list.push({
    alias: 'MurkyAuthController',
    order: '1',
    link: '安全控制器',
    desc: '安全控制器',
    list: []
})
api[1].list[0].list.push({
    order: '1',
    deprecated: 'false',
    url: '/auth/captcha',
    methodId: '1fc5adbc07cc0becfc49d36a09e48b14',
    desc: '',
});
api[1].list[0].list.push({
    order: '2',
    deprecated: 'false',
    url: '/auth/captcha',
    methodId: '1eb48cb4a339259dca8c633381c8b788',
    desc: '获取图形验证码信息',
});
api[1].list[0].list.push({
    order: '3',
    deprecated: 'false',
    url: '/auth/login',
    methodId: '7fa30f7ffdd05bafaa52df718703b175',
    desc: '登录',
});
api[1].list[0].list.push({
    order: '4',
    deprecated: 'false',
    url: '/auth/logout',
    methodId: 'bb74bfa520fa204d25acd8c34d3421e1',
    desc: '登出',
});
api[1].list[0].list.push({
    order: '5',
    deprecated: 'false',
    url: '/auth/menu',
    methodId: 'fca66fe0190a8d8537d6db918dbb51a4',
    desc: '获取菜单',
});
api[1].list[0].list.push({
    order: '6',
    deprecated: 'false',
    url: '/auth/info',
    methodId: '879521a35f1c4f421644bab609c54ca8',
    desc: '获取用户信息',
});
api[1].list.push({
    alias: 'MurkyProfileController',
    order: '2',
    link: '个人信息控制器',
    desc: '个人信息控制器',
    list: []
})
api[1].list[1].list.push({
    order: '1',
    deprecated: 'false',
    url: '/profile/language/{language}',
    methodId: '574dfb51cf1537d77bfaa3838e09ea6c',
    desc: '修改语言偏好',
});
api[1].list[1].list.push({
    order: '2',
    deprecated: 'false',
    url: '/profile/',
    methodId: '044329ff483891c612452524a655c335',
    desc: '获取用户展示信息',
});
api[1].list[1].list.push({
    order: '3',
    deprecated: 'false',
    url: '/profile/',
    methodId: '0ed38c847ae566401b4ec88f39eef1d5',
    desc: '修改用户信息',
});
api[1].list[1].list.push({
    order: '4',
    deprecated: 'false',
    url: '/profile/',
    methodId: '62e5d0146852c5c4e5f1b4286350856d',
    desc: '修改密码',
});
api.push({
    name: '系统管理模块',
    order: '3',
    list: []
})
api[2].list.push({
    alias: 'SysDeptController',
    order: '1',
    link: '部门管理',
    desc: '部门管理',
    list: []
})
api[2].list[0].list.push({
    order: '1',
    deprecated: 'false',
    url: '/dept/list',
    methodId: '03bc601ab83bb3acc0e7db2d4621d457',
    desc: '获取部门树形菜单',
});
api[2].list[0].list.push({
    order: '2',
    deprecated: 'false',
    url: '/dept/{deptId}',
    methodId: 'ab25c80bb01a0fe22ca55d9fa077ada8',
    desc: '获取部门信息详情',
});
api[2].list[0].list.push({
    order: '3',
    deprecated: 'false',
    url: '/dept/drop',
    methodId: 'bf3e711b8380e0aeddaa6eb7248923ff',
    desc: '拖动排序',
});
api[2].list[0].list.push({
    order: '4',
    deprecated: 'false',
    url: '/dept/',
    methodId: 'fa9659fecb966f660765afbcf359ac0e',
    desc: '添加部门',
});
api[2].list[0].list.push({
    order: '5',
    deprecated: 'false',
    url: '/dept/',
    methodId: '94e5b98545bcf63bbefa87b25a8eea7f',
    desc: '修改部门',
});
api[2].list[0].list.push({
    order: '6',
    deprecated: 'false',
    url: '/dept/{deptId}',
    methodId: 'b435368215397cfe0b0d47c1e3553e3f',
    desc: '删除部门',
});
api[2].list.push({
    alias: 'SysDictDataController',
    order: '2',
    link: '字典数据管理',
    desc: '字典数据管理',
    list: []
})
api[2].list[1].list.push({
    order: '1',
    deprecated: 'false',
    url: '/dictData/page',
    methodId: 'b2e001b52cf0a5350bc5d50404ef7d85',
    desc: '字典数据分页查询',
});
api[2].list[1].list.push({
    order: '2',
    deprecated: 'false',
    url: '/dictData/dict/{dictType}',
    methodId: '0023b1c42249bd393184fb97fd0ddd6b',
    desc: '获取指定字典数据',
});
api[2].list[1].list.push({
    order: '3',
    deprecated: 'false',
    url: '/dictData/{dictCode}',
    methodId: '46929a3fa40cf5e0540edab8a45d2149',
    desc: '字典数据详情信息',
});
api[2].list[1].list.push({
    order: '4',
    deprecated: 'false',
    url: '/dictData/',
    methodId: '4588497242317c290760b6e830ca66af',
    desc: '新增字典数据',
});
api[2].list[1].list.push({
    order: '5',
    deprecated: 'false',
    url: '/dictData/',
    methodId: 'f7e527be68476af7f964512af6ad1e35',
    desc: '修改字典数据',
});
api[2].list[1].list.push({
    order: '6',
    deprecated: 'false',
    url: '/dictData/{dictDataId}',
    methodId: 'f1662fa2fe58370a47a455a5dfa2f077',
    desc: '删除字典数据',
});
api[2].list.push({
    alias: 'SysDictTypeController',
    order: '3',
    link: '字典类型管理',
    desc: '字典类型管理',
    list: []
})
api[2].list[2].list.push({
    order: '1',
    deprecated: 'false',
    url: '/dictType/page',
    methodId: 'e6c1c646d03b5e9db87cd5eea58418d7',
    desc: '字典类型分页查询',
});
api[2].list[2].list.push({
    order: '2',
    deprecated: 'false',
    url: '/dictType/{dictTypeId}',
    methodId: 'b6a433a643ded8ce866a985f8cd6f674',
    desc: '字典类型详情信息',
});
api[2].list[2].list.push({
    order: '3',
    deprecated: 'false',
    url: '/dictType/',
    methodId: 'ba35feae3c168590d6de472b3b3d8148',
    desc: '新增字典类型',
});
api[2].list[2].list.push({
    order: '4',
    deprecated: 'false',
    url: '/dictType/',
    methodId: 'ad3d35dd6beb8e335a7b2d8a6a99fbad',
    desc: '修改字典类型',
});
api[2].list[2].list.push({
    order: '5',
    deprecated: 'false',
    url: '/dictType/{dictTypeId}',
    methodId: '5933bed176a2e2a918e0d5dc262c7a52',
    desc: '删除字典类型',
});
api[2].list[2].list.push({
    order: '6',
    deprecated: 'false',
    url: '/dictType/refresh',
    methodId: 'e66b709e0e02fc3bc43395965fc707fa',
    desc: '刷新字典',
});
api[2].list.push({
    alias: 'SysI18nController',
    order: '4',
    link: '国际化语言包管理',
    desc: '国际化语言包管理',
    list: []
})
api[2].list[3].list.push({
    order: '1',
    deprecated: 'false',
    url: '/i18n/page',
    methodId: '956445bbe69a5d20e593a26abdfb8013',
    desc: '分页查询',
});
api[2].list[3].list.push({
    order: '2',
    deprecated: 'false',
    url: '/i18n/info',
    methodId: '62959968d5ead5ff6ca53d9cbdfc8c0d',
    desc: '详情',
});
api[2].list[3].list.push({
    order: '3',
    deprecated: 'false',
    url: '/i18n/refresh',
    methodId: '6475f92f7f350d286e8f842b526a6e4b',
    desc: '刷新缓存',
});
api[2].list[3].list.push({
    order: '4',
    deprecated: 'false',
    url: '/i18n/language',
    methodId: 'de01dabfa2c8ac48b6f999521d00e095',
    desc: '获取指定语言包',
});
api[2].list[3].list.push({
    order: '5',
    deprecated: 'false',
    url: '/i18n/',
    methodId: '33b42ac68097e8e2c0e83b25fa8a21bd',
    desc: '新增国际化语言数据',
});
api[2].list[3].list.push({
    order: '6',
    deprecated: 'false',
    url: '/i18n/',
    methodId: '062c27afc9fe26543aea15c8d9c1c074',
    desc: '修改国际化语言数据',
});
api[2].list[3].list.push({
    order: '7',
    deprecated: 'false',
    url: '/i18n/{i18nKey}',
    methodId: '705c38d7f309ce6119b9f5680821ccb6',
    desc: '删除国际化语言数据',
});
api[2].list.push({
    alias: 'SysMenuController',
    order: '5',
    link: '菜单管理',
    desc: '菜单管理',
    list: []
})
api[2].list[4].list.push({
    order: '1',
    deprecated: 'false',
    url: '/menu/list',
    methodId: '917a494f290066fcfab0e21393ee8f92',
    desc: '获取用户全量菜单',
});
api[2].list[4].list.push({
    order: '2',
    deprecated: 'false',
    url: '/menu/{menuId}',
    methodId: '650abe829bf5da8c67a1fc8fff404278',
    desc: '菜单详情',
});
api[2].list[4].list.push({
    order: '3',
    deprecated: 'false',
    url: '/menu/',
    methodId: '1a25723d15fa7024fc98ec317c2675ab',
    desc: '新增菜单',
});
api[2].list[4].list.push({
    order: '4',
    deprecated: 'false',
    url: '/menu/',
    methodId: '2708056291484bea48fd403c65d830c4',
    desc: '修改菜单',
});
api[2].list[4].list.push({
    order: '5',
    deprecated: 'false',
    url: '/menu/drop',
    methodId: '74069310ec40ea4b9be718dd6e3fa67a',
    desc: '菜单拖动',
});
api[2].list[4].list.push({
    order: '6',
    deprecated: 'false',
    url: '/menu/{menuId}',
    methodId: 'bf9354b9923952c2c357506fd77985f0',
    desc: '删除菜单',
});
api[2].list.push({
    alias: 'SysNoticeController',
    order: '6',
    link: '通知管理',
    desc: '通知管理',
    list: []
})
api[2].list[5].list.push({
    order: '1',
    deprecated: 'false',
    url: '/sysNotice/page',
    methodId: 'dfe62fa16f441b36951357b71b2115f4',
    desc: '获取通知公告分页列表',
});
api[2].list[5].list.push({
    order: '2',
    deprecated: 'false',
    url: '/sysNotice/{id}',
    methodId: '50961f6a25c6e5c106cb5c8efee39bea',
    desc: '根据通知公告编号获取详细信息',
});
api[2].list[5].list.push({
    order: '3',
    deprecated: 'false',
    url: '/sysNotice/',
    methodId: 'b74f1a163bfdd1b31cb2cb9057b4fdea',
    desc: '新增通知公告',
});
api[2].list[5].list.push({
    order: '4',
    deprecated: 'false',
    url: '/sysNotice/',
    methodId: 'f29dca0a8e65a86c5ddc55f543be6a2e',
    desc: '修改通知公告',
});
api[2].list[5].list.push({
    order: '5',
    deprecated: 'false',
    url: '/sysNotice/{ids}',
    methodId: 'e2e0e681ae81b6a3df8e5f304f80bb68',
    desc: '删除通知公告',
});
api[2].list.push({
    alias: 'SysRoleController',
    order: '7',
    link: '角色管理',
    desc: '角色管理',
    list: []
})
api[2].list[6].list.push({
    order: '1',
    deprecated: 'false',
    url: '/role/page',
    methodId: '8bd2b48c9ac22f9d33f33efa77315918',
    desc: '角色列表分页查询',
});
api[2].list[6].list.push({
    order: '2',
    deprecated: 'false',
    url: '/role/list',
    methodId: '8a34e97c886fc82559483db21c6ff4f1',
    desc: '角色列表查询',
});
api[2].list[6].list.push({
    order: '3',
    deprecated: 'false',
    url: '/role/{roleId}',
    methodId: 'a2cb86a9727eba2e1f6a60e7d6d12334',
    desc: '角色详情',
});
api[2].list[6].list.push({
    order: '4',
    deprecated: 'false',
    url: '/role/',
    methodId: 'c2e297cd3bf22b2c3125eb40b242d2ef',
    desc: '新增角色',
});
api[2].list[6].list.push({
    order: '5',
    deprecated: 'false',
    url: '/role/',
    methodId: 'b1fb91eb3bf57b6e7ef3794fc71a337b',
    desc: '修改角色',
});
api[2].list[6].list.push({
    order: '6',
    deprecated: 'false',
    url: '/role/{roleId}',
    methodId: '37141dd90b79496cdad7463f7b2f1714',
    desc: '删除角色',
});
api[2].list.push({
    alias: 'SystemParameterController',
    order: '8',
    link: '系统配置管理',
    desc: '系统配置管理',
    list: []
})
api[2].list[7].list.push({
    order: '1',
    deprecated: 'false',
    url: '/systemParameter/page',
    methodId: 'b5759b2e50699614bb9a1011e399b7bc',
    desc: '系统配置分页查询',
});
api[2].list[7].list.push({
    order: '2',
    deprecated: 'false',
    url: '/systemParameter/{id}',
    methodId: '58b6c792a6c0f7b6d6c16ce0bddaff56',
    desc: '系统配置详情',
});
api[2].list[7].list.push({
    order: '3',
    deprecated: 'false',
    url: '/systemParameter/refresh',
    methodId: '82cba726167fff6b9951c8590dac2141',
    desc: '刷新系统配置缓存',
});
api[2].list[7].list.push({
    order: '4',
    deprecated: 'false',
    url: '/systemParameter/',
    methodId: '7e7db19653d8347739c32fdb3bd370a5',
    desc: '新增系统配置',
});
api[2].list[7].list.push({
    order: '5',
    deprecated: 'false',
    url: '/systemParameter/',
    methodId: '8a7ade4b6976be41fe11ee01f756440c',
    desc: '修改系统配置',
});
api[2].list[7].list.push({
    order: '6',
    deprecated: 'false',
    url: '/systemParameter/{id}',
    methodId: '7fca6b832787ec30d98ed52f803fbfc7',
    desc: '删除系统配置',
});
api[2].list.push({
    alias: 'SysUserController',
    order: '9',
    link: '用户管理',
    desc: '用户管理',
    list: []
})
api[2].list[8].list.push({
    order: '1',
    deprecated: 'false',
    url: '/user/page',
    methodId: 'bb27e7bcaa4dd37d7f89996a06a5648e',
    desc: '用户分页',
});
api[2].list[8].list.push({
    order: '2',
    deprecated: 'false',
    url: '/user/{userId}',
    methodId: '0d49bff42686aa108e3c8142a1d07905',
    desc: '用户详情',
});
api[2].list[8].list.push({
    order: '3',
    deprecated: 'false',
    url: '/user/',
    methodId: 'fa0004f7115c9c1dda9b76f24fed4b67',
    desc: '新增用户',
});
api[2].list[8].list.push({
    order: '4',
    deprecated: 'false',
    url: '/user/',
    methodId: 'c05c24582e677cca76b67898b74fefe8',
    desc: '修改用户',
});
api[2].list[8].list.push({
    order: '5',
    deprecated: 'false',
    url: '/user/restPassword',
    methodId: '98072a6ff95275d40f75464dc8c3d828',
    desc: '重置密码',
});
api[2].list[8].list.push({
    order: '6',
    deprecated: 'false',
    url: '/user/{userId}',
    methodId: 'd20a448eac935a377d76c60dd0884f22',
    desc: '删除用户',
});
api.push({
    name: '租户管理模块',
    order: '4',
    list: []
})
api[3].list.push({
    alias: 'PermissionGroupController',
    order: '1',
    link: '租户权限组管理',
    desc: '租户权限组管理',
    list: []
})
api[3].list[0].list.push({
    order: '1',
    deprecated: 'false',
    url: '/permissionGroup/page',
    methodId: '65f19f6ce266921fbc1b237a77066f7f',
    desc: '租户权限组列表分页查询',
});
api[3].list[0].list.push({
    order: '2',
    deprecated: 'false',
    url: '/permissionGroup/list',
    methodId: '4ccb47307d4d61674499dd6c4562a126',
    desc: '租户权限组列表查询',
});
api[3].list[0].list.push({
    order: '3',
    deprecated: 'false',
    url: '/permissionGroup/{roleId}',
    methodId: 'a7625fdcff80a37521958753f6d8302c',
    desc: '租户权限组详情',
});
api[3].list[0].list.push({
    order: '4',
    deprecated: 'false',
    url: '/permissionGroup/',
    methodId: 'f584ed97417e57134f7bf644b5ad0d62',
    desc: '新增租户权限组',
});
api[3].list[0].list.push({
    order: '5',
    deprecated: 'false',
    url: '/permissionGroup/',
    methodId: '563598114de3744cde0c2c5a6bef6a24',
    desc: '修改租户权限组',
});
api[3].list[0].list.push({
    order: '6',
    deprecated: 'false',
    url: '/permissionGroup/{groupId}',
    methodId: 'bfa8dfda4d1b0f9d66cb660603429991',
    desc: '删除租户权限组',
});
api[3].list.push({
    alias: 'TenantController',
    order: '2',
    link: '租户管理',
    desc: '租户管理',
    list: []
})
api[3].list[1].list.push({
    order: '1',
    deprecated: 'false',
    url: '/tenant/page',
    methodId: '76d27a7ceba34641bad24599666fc508',
    desc: '租户列表分页查询',
});
api[3].list[1].list.push({
    order: '2',
    deprecated: 'false',
    url: '/tenant/{tenantId}',
    methodId: 'feef420751a2ba00d95061fb1099a1fc',
    desc: '租户详情',
});
api[3].list[1].list.push({
    order: '3',
    deprecated: 'false',
    url: '/tenant/',
    methodId: '3c3a47bbf3f17c9a70c4d11ee3915f29',
    desc: '新增租户',
});
api[3].list[1].list.push({
    order: '4',
    deprecated: 'false',
    url: '/tenant/',
    methodId: 'ca0d2c39de73cf8a51a33d69b8438410',
    desc: '修改租户',
});
api[3].list[1].list.push({
    order: '5',
    deprecated: 'false',
    url: '/tenant/{tenantId}',
    methodId: '66b8635f715a28d5d5fc5ddf964c8310',
    desc: '停用/启用租户',
});
api[3].list.push({
    alias: 'TenantMenuController',
    order: '3',
    link: '租户菜单管理',
    desc: '租户菜单管理',
    list: []
})
api[3].list[2].list.push({
    order: '1',
    deprecated: 'false',
    url: '/tenantMenu/list',
    methodId: 'c8a42b93926cd943d4cecbe790ad6581',
    desc: '租户菜单列表查询',
});
api[3].list[2].list.push({
    order: '2',
    deprecated: 'false',
    url: '/tenantMenu/{tenantMenuId}',
    methodId: 'c405bce5fd489c8e51db04c3fecda524',
    desc: '租户菜单详情',
});
api[3].list[2].list.push({
    order: '3',
    deprecated: 'false',
    url: '/tenantMenu/',
    methodId: '4048add8d94a27a2f4fa8a48fd0b0035',
    desc: '新增菜单',
});
api[3].list[2].list.push({
    order: '4',
    deprecated: 'false',
    url: '/tenantMenu/',
    methodId: 'f511ca20a4973902f106f78cb9dd700d',
    desc: '修改菜单',
});
api[3].list[2].list.push({
    order: '5',
    deprecated: 'false',
    url: '/tenantMenu/drop',
    methodId: '6dcc939fde66843eecb8375d7f8ccfe9',
    desc: '菜单拖动',
});
api[3].list[2].list.push({
    order: '6',
    deprecated: 'false',
    url: '/tenantMenu/{tenantMenuId}',
    methodId: '3874da85ca59dbb7bb0fff57fa721ddb',
    desc: '删除租户菜单',
});
api.push({
    name: '定时任务管理',
    order: '5',
    list: []
})
api[4].list.push({
    alias: 'SysJobController',
    order: '1',
    link: '调度任务信息操作处理',
    desc: '调度任务信息操作处理',
    list: []
})
api[4].list[0].list.push({
    order: '1',
    deprecated: 'false',
    url: '/monitor/job/list',
    methodId: '47ebbd094f25d41fccfba02fe43c0345',
    desc: '查询定时任务列表',
});
api[4].list[0].list.push({
    order: '2',
    deprecated: 'false',
    url: '/monitor/job/{jobId}',
    methodId: '4e967422c429fdf669f786e47ac050b2',
    desc: '获取定时任务详细信息',
});
api[4].list[0].list.push({
    order: '3',
    deprecated: 'false',
    url: '/monitor/job/',
    methodId: 'b998cd312226479488cabfb60a7bbd4b',
    desc: '新增定时任务',
});
api[4].list[0].list.push({
    order: '4',
    deprecated: 'false',
    url: '/monitor/job/',
    methodId: '1538b923f887dddef9fc77ea4512e85f',
    desc: '修改定时任务',
});
api[4].list[0].list.push({
    order: '5',
    deprecated: 'false',
    url: '/monitor/job/changeStatus',
    methodId: 'bed5386c8998855988b2af102694244d',
    desc: '定时任务状态修改',
});
api[4].list[0].list.push({
    order: '6',
    deprecated: 'false',
    url: '/monitor/job/run',
    methodId: '5601cfa6a3c209fb0c7c6df468c43581',
    desc: '定时任务立即执行一次',
});
api[4].list[0].list.push({
    order: '7',
    deprecated: 'false',
    url: '/monitor/job/{jobIds}',
    methodId: '8dd83ce98a886c08e5e4de4f98752ac2',
    desc: '删除定时任务',
});
api[4].list.push({
    alias: 'SysJobLogController',
    order: '2',
    link: '调度日志操作处理',
    desc: '调度日志操作处理',
    list: []
})
api[4].list[1].list.push({
    order: '1',
    deprecated: 'false',
    url: '/monitor/jobLog/list',
    methodId: '287434041108e1e0f06e1fda6274ec5f',
    desc: '查询定时任务调度日志列表',
});
api[4].list[1].list.push({
    order: '2',
    deprecated: 'false',
    url: '/monitor/jobLog/{jobLogId}',
    methodId: '77438838d078a763984186eec5fb6311',
    desc: '根据调度编号获取详细信息',
});
api[4].list[1].list.push({
    order: '3',
    deprecated: 'false',
    url: '/monitor/jobLog/{jobLogIds}',
    methodId: '67b6bc1e385e0a03ab043865c89c55a3',
    desc: '删除定时任务调度日志',
});
api[4].list[1].list.push({
    order: '4',
    deprecated: 'false',
    url: '/monitor/jobLog/clean',
    methodId: '6e42ae100e4d997b2372da784da9be8f',
    desc: '清空定时任务调度日志',
});
document.onkeydown = keyDownSearch;
function keyDownSearch(e) {
    const theEvent = e;
    const code = theEvent.keyCode || theEvent.which || theEvent.charCode;
    if (code === 13) {
        const search = document.getElementById('search');
        const searchValue = search.value.toLocaleLowerCase();

        let searchGroup = [];
        for (let i = 0; i < api.length; i++) {

            let apiGroup = api[i];

            let searchArr = [];
            for (let i = 0; i < apiGroup.list.length; i++) {
                let apiData = apiGroup.list[i];
                const desc = apiData.desc;
                if (desc.toLocaleLowerCase().indexOf(searchValue) > -1) {
                    searchArr.push({
                        order: apiData.order,
                        desc: apiData.desc,
                        link: apiData.link,
                        alias: apiData.alias,
                        list: apiData.list
                    });
                } else {
                    let methodList = apiData.list || [];
                    let methodListTemp = [];
                    for (let j = 0; j < methodList.length; j++) {
                        const methodData = methodList[j];
                        const methodDesc = methodData.desc;
                        if (methodDesc.toLocaleLowerCase().indexOf(searchValue) > -1) {
                            methodListTemp.push(methodData);
                            break;
                        }
                    }
                    if (methodListTemp.length > 0) {
                        const data = {
                            order: apiData.order,
                            desc: apiData.desc,
                            link: apiData.link,
                            alias: apiData.alias,
                            list: methodListTemp
                        };
                        searchArr.push(data);
                    }
                }
            }
            if (apiGroup.name.toLocaleLowerCase().indexOf(searchValue) > -1) {
                searchGroup.push({
                    name: apiGroup.name,
                    order: apiGroup.order,
                    list: searchArr
                });
                continue;
            }
            if (searchArr.length === 0) {
                continue;
            }
            searchGroup.push({
                name: apiGroup.name,
                order: apiGroup.order,
                list: searchArr
            });
        }
        let html;
        if (searchValue === '') {
            const liClass = "";
            const display = "display: none";
            html = buildAccordion(api,liClass,display);
            document.getElementById('accordion').innerHTML = html;
        } else {
            const liClass = "open";
            const display = "display: block";
            html = buildAccordion(searchGroup,liClass,display);
            document.getElementById('accordion').innerHTML = html;
        }
        const Accordion = function (el, multiple) {
            this.el = el || {};
            this.multiple = multiple || false;
            const links = this.el.find('.dd');
            links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown);
        };
        Accordion.prototype.dropdown = function (e) {
            const $el = e.data.el;
            let $this = $(this), $next = $this.next();
            $next.slideToggle();
            $this.parent().toggleClass('open');
            if (!e.data.multiple) {
                $el.find('.submenu').not($next).slideUp("20").parent().removeClass('open');
            }
        };
        new Accordion($('#accordion'), false);
    }
}

function buildAccordion(apiGroups, liClass, display) {
    let html = "";
    if (apiGroups.length > 0) {
        if (apiDocListSize === 1) {
            let apiData = apiGroups[0].list;
            let order = apiGroups[0].order;
            for (let j = 0; j < apiData.length; j++) {
                html += '<li class="'+liClass+'">';
                html += '<a class="dd" href="#' + apiData[j].alias + '">' + apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
                html += '<ul class="sectlevel2" style="'+display+'">';
                let doc = apiData[j].list;
                for (let m = 0; m < doc.length; m++) {
                    let spanString;
                    if (doc[m].deprecated === 'true') {
                        spanString='<span class="line-through">';
                    } else {
                        spanString='<span>';
                    }
                    html += '<li><a href="#' + doc[m].methodId + '">' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + spanString + doc[m].desc + '<span></a> </li>';
                }
                html += '</ul>';
                html += '</li>';
            }
        } else {
            for (let i = 0; i < apiGroups.length; i++) {
                let apiGroup = apiGroups[i];
                html += '<li class="'+liClass+'">';
                html += '<a class="dd" href="#_'+apiGroup.order+'_' + apiGroup.name + '">' + apiGroup.order + '.&nbsp;' + apiGroup.name + '</a>';
                html += '<ul class="sectlevel1">';

                let apiData = apiGroup.list;
                for (let j = 0; j < apiData.length; j++) {
                    html += '<li class="'+liClass+'">';
                    html += '<a class="dd" href="#' + apiData[j].alias + '">' +apiGroup.order+'.'+ apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
                    html += '<ul class="sectlevel2" style="'+display+'">';
                    let doc = apiData[j].list;
                    for (let m = 0; m < doc.length; m++) {
                       let spanString;
                       if (doc[m].deprecated === 'true') {
                           spanString='<span class="line-through">';
                       } else {
                           spanString='<span>';
                       }
                       html += '<li><a href="#' + doc[m].methodId + '">'+apiGroup.order+'.' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + spanString + doc[m].desc + '<span></a> </li>';
                   }
                    html += '</ul>';
                    html += '</li>';
                }

                html += '</ul>';
                html += '</li>';
            }
        }
    }
    return html;
}